package ar.edu.utn.frsf.tpae.a2012.g05.service;

import java.util.List;

import ar.edu.utn.frsf.tpae.a2012.g05.entity.Movimiento;
import ar.edu.utn.frsf.tpae.a2012.g05.entity.Pago;
import ar.edu.utn.frsf.tpae.a2012.g05.exception.NegocioException;

public interface MovimientoService {
	
	/**
	 * Retorna todos los movimientos de una cuenta.
	 * 
	 * @param idCuenta
	 * @return Movimientos de la cuenta idCuenta
	 * @throws NegocioException si la cuenta no existe
	 */
	public List<Movimiento> findMovimientosCuenta(Integer idCuenta) throws NegocioException;
	
	/**
	 * Este servicio tiene la responsabilidad de comunicarse con la interfaz del dao y 
	 * realizar un pago.
	 * Debe validar que el saldo de la cuenta es suficiente para realizarlo. 
	 * 
	 * @param pago
	 * @return
	 * @throws NegocioException si la cuenta no tiene saldo para realizar el pago o
	 * si el monto del pago es negativo
	 */
	public Pago realizarPago(Pago pago) throws NegocioException;
}
